package org.example.physics_engine.geometry.shapes;

import org.example.physics_engine.geometry.Vector2d;

//凸面体接口
public interface Convex {

    //获取焦点
    //返回圆形弯曲边缘的世界空间焦点数组
    Vector2d[] getFocus();

    //基于另一个图形的焦点获取分离轴
    //参数是圆形弯曲边缘的世界空间焦点数组
    /* The returned axes are normalized and in world space.
     * @param foci the world space points representing foci of curved {@link Shape}s; can be null
     * @param transform the local to world space {@link Transform} of this {@link Convex} {@link Shape}
     * @return {@link Vector2}[]*/
    Vector2d[] getAxes(Vector2d[] focus);

    //返回在给定向量方向上最远的Feature（碰撞特征？）
    Vector2d getFarthestFeature(Vector2d vector);

    //返回在给定向量方向上最远的点。 如果两个点沿着给定的Vector2d方向距离相等，则使用第一个点
    Vector2d getFarthestPoint(Vector2d vector);
}
